/*********************课程资料管理版块模块结束******************/

function learnResMgrFn(node, event) {
	if (node.isLeaf()) {		//判断点击的是树的叶子节点
		event.stopEvent();
		
		//获取点击的菜单项的id
		var node_id = node.id;
		//获取被点击的菜单项的text
		var node_text = node.text;
		
		if (node_id == 'mgr_courseware') {			//管理教学课件
			
			//从TabPanel获取此id的对象，看看tab是否已经打开
			var tab = Ext.getCmp("center_part").getComponent(node_id);		         	
			
			if (!tab) {				//如果没有打开	
				
				//显示等待保存的提示信息
				Ext.MessageBox.show({
						title: '请等待',
						msg: '正在加载，请稍等...',
						progress: true,								        
						width: 260,
						wait:true,
						icon: 'mb_download_icon',
						animEl: 'saving',
						waitConfig: {
							interval: 200,  //interval进度的频率
							duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
							fn: function(){	//时间到后执行
								Ext.MessageBox.hide();	//让进度条消失
							}
						}
				});
				
				/***定义带插件RowExpander的表格上的工具条的按钮的处理函数***/	
				
				//定义RowExpander显示格式的按钮的处理函数
				var styleButtonFn = function(btn){
					if (styleButton.getText() == '详细模式') {
						//展开分组表格的分组
						learnResGrid.getView().expandAllGroups();
						for (var i = 0; i < learnResGrid.getStore().getCount(); i++) {		
							styleButton.setText('简洁模式');
							styleButton.setIconClass("pithy_icon");
							expander.expandRow(i);
						}
					} else if (styleButton.getText() == '简洁模式') {
						//收缩分组表格的分组
						learnResGrid.getView().collapseAllGroups();
						for (var i = 0; i < learnResGrid.getStore().getCount(); i++) {		
							styleButton.setText('详细模式');
							styleButton.setIconClass("minute_icon");
							expander.collapseRow(i);
						}							
					}
				}
				
				/********弹出窗口添加新的课件********/
				//创建课件表单
				var newLearnResForm = new Ext.form.FormPanel({	
					fileUpload: true, 
			        labelAlign: 'right',			        
			        labelWidth: 80,
			        frame: true,	
			        //enctype:'multipart/form-data',
			        items: [{
			        	xtype: 'fieldset',
						title: '课件基本信息',
						autoHeight: true,
						defaultType: 'textfield',
						//统一设置宽度和验证
				        defaults: {
					        allowBlank: false,
					        msgTarget: 'side'
				        },									
						items: [{
							id: 'learnResTitle',
				            fieldLabel: '课件标题',
				            name: 'title',
				            anchor: '70%'
				        },{
				        	id: 'upload_file',
				            fieldLabel: '上传课件',
				            xtype: 'fileuploadfield',
				            emptyText: '选择您要上传的课件',
				            name: 'file_path',
				            anchor: '70%',
				            buttonCfg: {
				                text: '',
				                iconCls: 'upload-icon'
				            }
				        },{
							xtype: 'htmleditor',
							id: 'newlearnResEditor',
							fieldLabel: '课件描述',
							name: 'res_desc',
							height: 200,
							//禁止编辑源代码
							enableSourceEdit: false,
							anchor: '98%' 							
						}]						     
			        }]							        
			    });
			    //定义弹出窗口
				var newLearnRes_win = new Ext.Window({
					id: 'newLearnRes_win',
					title: '发布新课件',					
			        width:650,
			        height:380,
			        //设置当点击X按钮时候，是隐藏还是销毁
			        closeAction:'hide',
			        //不允许超出浏览器范围
			        constrain: true,
			        //开启蒙板效果
			        modal: true,
			        buttonAlign: 'center',
			        items: [newLearnResForm],
			        buttons: [{
				       	text:'保存',
				       	iconCls: 'submit_icon',
				       	//提交表单
				       	handler: function () {
				       		//如果表单验证成功，则显示保存的等待，和提交form
				       		if (newLearnResForm.getForm().isValid()) {				       			
				       			//判断HtmlEditor即内容的输入是否为空
								var contentValue = Ext.getCmp("newlearnResEditor").getValue();
								if (Ext.isEmpty(contentValue.Trim())) {
									Ext.Msg.alert("错误信息", "请输入您要发布的课件描述!");
									return;
								}
								
								//不知道为什么，加上了“fileUpload: true, ”就会有乱码，只有编码来解决的，郁闷
								Ext.getCmp('learnResTitle').setValue(encodeURI(Ext.getCmp('learnResTitle').getValue()));
      							//Ext.getCmp('upload_file').setValue(encodeURI(Ext.getCmp('upload_file').getValue()));
      							Ext.getCmp('newlearnResEditor').setValue(encodeURI(contentValue));
								
				       			//提交表单
				       			newLearnResForm.getForm().submit({	
				       				url: 'learn_res_mgr.do?cmd=add&flag=courseware',
				        			success: function (newLearnResForm, action) {
				        				Ext.Msg.alert("操作结果", action.result.msg);
				        				//重置newLearnResForm中的数据
				        				newLearnResForm.reset();
				        				//关闭窗口（隐藏）
				        				newLearnRes_win.hide();
				        				//刷新表格数据，看看修改或添加效果
				        				learnResGrid.getStore().reload();
				        			},
				        			failure: function (newLearnResForm, action) {
				        				//重置newLearnResForm中的数据
				        				newLearnResForm.reset();
				        				Ext.Msg.alert("操作结果", action.result.msg);
				        			}
				        		});
				       			//显示等待保存的提示信息
				        		Ext.MessageBox.show({
				        				title: '请等待',
	                                    msg: '正在保存，请稍等...',
	                                    progress: true,								        
								        width: 240,
								        wait:true,
								        icon: 'mb_waiting_icon',
								        animEl: 'saving',
								        waitConfig: {
								        	interval: 200,  //interval进度的频率
								        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
											fn: function(){	//时间到后执行
			                                 	Ext.MessageBox.hide();	//让进度条消失
			                                }
								        }
	                            });
				       		}	
			        	}						       	 	
			        }, {
			        	text:'重置',
			        	iconCls: 'reset_icon',
			        	handler: function () {
			        		newLearnResForm.getForm().reset();
			        	}	
			        }, {
			        	text:'取消',
			        	iconCls: 'revoke_icon',
			        	handler: function () {
			        		newLearnRes_win.hide();
			        	}	
			        }]
			    });
			    
			    //发布新课件
				var newlearnResButtonFn = function() {
					newLearnResForm.getForm().reset();
				    newLearnRes_win.show();	
				}
				
				/********弹出窗口编辑修改选中的课件********/
				//创建课件表单
				var editLearnResForm = new Ext.form.FormPanel({	
					fileUpload: true, 
			        labelAlign: 'right',			        
			        labelWidth: 80,
			        frame: true,	
			        //enctype:'multipart/form-data',
			        items: [{
			        	xtype: 'fieldset',
						title: '课件基本信息',
						autoHeight: true,
						defaultType: 'textfield',
						//统一设置宽度和验证
				        defaults: {
					        allowBlank: false,
					        msgTarget: 'side'
				        },									
						items: [{
				        	xtype: 'hidden',
				        	name: 'id'
				        },{
							id: 'editlearnResTitle',
				            fieldLabel: '课件标题',
				            name: 'title',
				            anchor: '70%'
				        },{
							xtype: 'htmleditor',
							id: 'editlearnResEditor',
							fieldLabel: '课件描述',
							name: 'res_desc',
							height: 200,
							//禁止编辑源代码
							enableSourceEdit: false,
							anchor: '98%' 							
						}]						     
			        }]							        
			    });
			    
			    //定义弹出窗口
				var editLearnRes_win = new Ext.Window({
					id: 'editLearnRes_win',
					title: '发布新课件',					
			        width:650,
			        height:348,
			        //设置当点击X按钮时候，是隐藏还是销毁
			        closeAction:'hide',
			        //不允许超出浏览器范围
			        constrain: true,
			        //开启蒙板效果
			        modal: true,
			        buttonAlign: 'center',
			        items: [editLearnResForm],
			        buttons: [{
				       	text:'保存',
				       	iconCls: 'submit_icon',
				       	//提交表单
				       	handler: function () {
				       		//如果表单验证成功，则显示保存的等待，和提交form
				       		if (editLearnResForm.getForm().isValid()) {				       			
				       			//判断HtmlEditor即内容的输入是否为空
								var contentValue = Ext.getCmp("editlearnResEditor").getValue();
								if (Ext.isEmpty(contentValue.Trim())) {
									Ext.Msg.alert("错误信息", "请输入您要发布的课件描述!");
									return;
								}
								
								//不知道为什么，加上了“fileUpload: true, ”就会有乱码，只有编码来解决的，郁闷
								Ext.getCmp('editlearnResTitle').setValue(encodeURI(Ext.getCmp('editlearnResTitle').getValue()));
      							//Ext.getCmp('upload_file').setValue(encodeURI(Ext.getCmp('upload_file').getValue()));
      							Ext.getCmp('editlearnResEditor').setValue(encodeURI(contentValue));
								
				       			//提交表单
				       			editLearnResForm.getForm().submit({	
				       				url: 'learn_res_mgr.do?cmd=modify',
				        			success: function (editLearnResForm, action) {
				        				Ext.Msg.alert("操作结果", action.result.msg);
				        				//重置editLearnResForm中的数据
				        				editLearnResForm.reset();
				        				//关闭窗口（隐藏）
				        				editLearnRes_win.hide();
				        				//刷新表格数据，看看修改或添加效果
				        				learnResGrid.getStore().reload();
				        			},
				        			failure: function (editLearnResForm, action) {
				        				//重置editLearnResForm中的数据
				        				editLearnResForm.reset();
				        				Ext.Msg.alert("操作结果", action.result.msg);
				        			}
				        		});
				       			//显示等待保存的提示信息
				        		Ext.MessageBox.show({
				        				title: '请等待',
	                                    msg: '正在保存，请稍等...',
	                                    progress: true,								        
								        width: 240,
								        wait:true,
								        icon: 'mb_waiting_icon',
								        animEl: 'saving',
								        waitConfig: {
								        	interval: 200,  //interval进度的频率
								        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
											fn: function(){	//时间到后执行
			                                 	Ext.MessageBox.hide();	//让进度条消失
			                                }
								        }
	                            });
				       		}	
			        	}						       	 	
			        }, {
			        	text:'重置',
			        	iconCls: 'reset_icon',
			        	handler: function () {
			        		editLearnResForm.getForm().reset();
			        	}	
			        }, {
			        	text:'取消',
			        	iconCls: 'revoke_icon',
			        	handler: function () {
			        		editLearnRes_win.hide();
			        	}	
			        }]
			    });
			    
			    //修改课件
				var editButtonFn = function() {
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = learnResGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择一行你要编辑的记录！");
						
					} else {	
						
						editLearnResForm.getForm().reset();
				    	editLearnRes_win.show();
				    	
						/***注意，一定要先显示窗口，以及其中的From在给Form设值，才可以****/
						
						//把表格中选中行的数据填充到表单中，并显示Window							
						editLearnResForm.getForm().setValues({
							id: selectedCol.get("id"),
							title: selectedCol.get("title"),
							res_desc: selectedCol.get("res_desc")
						});
					}
						
				}
				
				//删除课件
				var deleteButtonFn = function() {
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = learnResGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择一行你要删除的记录！");
						
					} else {
						//先提醒用户是否要删除
						Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
							//如果用户确定删除
							if (btn == 'yes') {
								//把要删除的所有选中的id
								var del_id = selectedCol.get("id");
								
								//发送到后台处理
								Ext.Ajax.request({
									url: 'learn_res_mgr.do?cmd=delete',
									success: function(response) {
										var obj = Ext.decode(response.responseText);
										if (typeof(obj) != 'undefined') {
											if (obj.result == 'success') {
												Ext.Msg.alert("操作结果", "恭喜，删除课件成功！");
												//刷新表格数据，看看删除效果
					        					learnResGrid.getStore().reload();
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除课件失败！请重新尝试！");
											}
										} else {
											Ext.Msg.alert("操作结果", "抱歉，删除课件失败！请重新尝试！");
										}
										
									},
									failure: function() {
										Ext.Msg.alert("操作结果", "抱歉，删除课件失败！请重新尝试！");
									},
									params: {id: del_id}										
									
								});
							}							
						});
					}
				}
				
				/******定义所有提问带ext插件RowExpander的表格*********/	
				
				//定义表格Record样式
				var learnResRecord = Ext.data.Record.create([
					{name: 'id', type: 'int', mapping: 'id'},
					{name: 'title', type: 'string', mapping: 'title'},
					{name: 'res_desc', type: 'string', mapping: 'res_desc'},
					{name: 'format', type: 'string', mapping: 'format'},
					{name: 'size', type: 'string', mapping: 'size'},
					{name: 'pub_user', type: 'string', mapping: 'pub_user'},
					{name: 'pub_time', type: 'date', mapping: 'pub_time', dateFormat: 'Y-m-dTH:i:s'},
					{name: 'see_count', type: 'int', mapping: 'see_count'},					
					{name: 'down_count', type: 'int', mapping: 'down_count'},
					{name: 'operate', type: 'string', mapping: 'operate'}
				]);
				
				//定义加号里面的内容显示格式
				var expander = new Ext.grid.RowExpander({
					tpl : new Ext.Template(
						'<p>&nbsp;</p>',
						'<p><b>课件描述：</b></p>',
						'<p>&nbsp;</p>',
						'<p>{res_desc}</p><br /><br />'
					)
				});
				
				//定义表格列样式
				var learnResColums = new Ext.grid.ColumnModel([
					//加上上面定义的expander
					expander,
				{
					id: 'id',
					header: '编号',
					dataIndex: 'id',
					type: 'int'
				},{
					id: 'title',
					header: '标题',
					dataIndex: 'title',
					type: 'string'
				},{
					id: 'format',
					header: '格式',
					dataIndex: 'format',
					type: 'string', 
					renderer: fileFormatRenderer
				},{
					id: 'size',
					header: '大小',
					dataIndex: 'size',
					type: 'string'
				},{
					id: 'pub_user',
					header: '发布人',
					dataIndex: 'pub_user',
					type: 'string'
				},{
					id: 'pub_time',
					header: '发布时间',
					dataIndex: 'pub_time',
					type: 'date',
					width: 160,
					renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒')
				},{
					id: 'see_count',
					header: '浏览次数',
					dataIndex: 'see_count',
					type: 'int'
				},{
					id: 'down_count',
					header: '下载次数',
					dataIndex: 'down_count',
					type: 'int'
				},{
					id: 'operate',
					header: '在线浏览/下载',
					dataIndex: 'operate',
					type: 'string'
				}]);
				learnResColums.defaultSortable = false;
				
				//定义Stroe(使用的是GroupingStore产生分组表格，按是否问题已经解决分组)
				var learnResStore = new Ext.data.GroupingStore({
					proxy: new Ext.data.HttpProxy({url:'learn_res_mgr.do?cmd=show&flag=courseware'}),
					reader: new Ext.data.JsonReader({
						totalProperty: 'totalProperty',
						root: 'root'
					}, learnResRecord),
					//分组的列
					groupField: 'format',
					//分组必须设置的，排序的列
					sortInfo: {field: 'id', direction: 'desc'}
				});
				learnResStore.load({params:{start: 0, limit: 10}});	
				
				//定义表格顶端工具栏	
				//显示风格选择按钮
				var styleButton = new Ext.Button({
					text: '详细模式',
					tooltip: '切换显示模式',
					iconCls:'minute_icon',
					handler: styleButtonFn
				});	
				var newlearnResButton = new Ext.Button({
					text: '发布',
					tooltip: '发布新课件',
					iconCls:'add_icon',
					handler: newlearnResButtonFn
				});
				var editButton = new Ext.Button({
					text: '编辑',
					tooltip: '编辑选中的课件',
					iconCls:'edit_icon',
					handler: editButtonFn
				});					
				var deleteButton = new Ext.Button({
					text: '删除',
					tooltip: '删除选中的课件',
					iconCls:'del_icon',
					handler: deleteButtonFn
				});
				var flashButton = new Ext.Button({
					text: '刷新',
					tooltip: '刷新本页内容',
					iconCls:'flush_icon',
					handler: function() {
				    	learnResGrid.getStore().reload();
				    }
				});
				var topToolbar = new Ext.Toolbar({
					items: [styleButton, '-', newlearnResButton, '-', editButton, '-', deleteButton, '-', flashButton]
				});
				
				//定义表格
				var learnResGrid = new Ext.grid.GridPanel({
					loadMask: true,
					//使得表格强制fit父容器
					viewConfig: {
						forceFit: true
					},
					store: learnResStore,
					cm: learnResColums,
					sm: new Ext.grid.RowSelectionModel(),
					//设置分组View
					view: new Ext.grid.GroupingView({
						forceFit:true,
				        //显示这个分组有多少项
				        groupTextTpl: '{text} ({[values.rs.length]} {["条记录"]})'
					}),
					//添加顶端的工具栏
					tbar: topToolbar,
					//添加底部分页条（bbar-->bottom bar）
					bbar: new Ext.PagingToolbar({
						pageSize: 10,
						store: learnResStore,
						displayInfo: true,
						displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
						emptyMsg: "没有记录"
					}),
					//扩展插件
					plugins: expander,
					collapsible: true,
					animCollapse: false
				});
				
				/*****定义显示课件信息的带ext插件RowExpander的表格结束*******/
				/*****************添加此表格到TabPanel*****************/
				tab = Ext.getCmp("center_part").add({
					//使用点击菜单的id，这样方便事件处理
					id: node_id,
					//标题为被点击的菜单项的text
					title: node_text,
					closable:true,
					iconCls: 'nor_icon',
					autoScroll:true,
					layout: 'fit',
					items: [learnResGrid]
				});		  
				/***************添加此表格到TabPanel结束***************/
				
			}
			
			//设置此新增Tab为活动的Tab
			Ext.getCmp("center_part").setActiveTab(tab);
			
		} else if (node_id == 'mgr_experiment_courseware') {  	//管理实验课件
			
			//从TabPanel获取此id的对象，看看tab是否已经打开
			var tab = Ext.getCmp("center_part").getComponent(node_id);		         	
			
			if (!tab) {				//如果没有打开	
				
				//显示等待保存的提示信息
				Ext.MessageBox.show({
						title: '请等待',
						msg: '正在加载，请稍等...',
						progress: true,								        
						width: 260,
						wait:true,
						icon: 'mb_download_icon',
						animEl: 'saving',
						waitConfig: {
							interval: 200,  //interval进度的频率
							duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
							fn: function(){	//时间到后执行
								Ext.MessageBox.hide();	//让进度条消失
							}
						}
				});
				
				/***定义带插件RowExpander的表格上的工具条的按钮的处理函数***/	
				
				//定义RowExpander显示格式的按钮的处理函数
				var styleButtonFn = function(btn){
					if (styleButton.getText() == '详细模式') {
						//展开分组表格的分组
						learnTestResGrid.getView().expandAllGroups();
						for (var i = 0; i < learnTestResGrid.getStore().getCount(); i++) {		
							styleButton.setText('简洁模式');
							styleButton.setIconClass("pithy_icon");
							expander.expandRow(i);
						}
					} else if (styleButton.getText() == '简洁模式') {
						//收缩分组表格的分组
						learnTestResGrid.getView().collapseAllGroups();
						for (var i = 0; i < learnTestResGrid.getStore().getCount(); i++) {		
							styleButton.setText('详细模式');
							styleButton.setIconClass("minute_icon");
							expander.collapseRow(i);
						}							
					}
				}
				
				/********弹出窗口添加新的课件********/
				//创建课件表单
				var newLearnTestResForm = new Ext.form.FormPanel({	
					fileUpload: true, 
			        labelAlign: 'right',			        
			        labelWidth: 80,
			        frame: true,	
			        //enctype:'multipart/form-data',
			        items: [{
			        	xtype: 'fieldset',
						title: '课件基本信息',
						autoHeight: true,
						defaultType: 'textfield',
						//统一设置宽度和验证
				        defaults: {
					        allowBlank: false,
					        msgTarget: 'side'
				        },									
						items: [{
							id: 'learnTestResTitle',
				            fieldLabel: '课件标题',
				            name: 'title',
				            anchor: '70%'
				        },{
				        	id: 'upload_test_file',
				            fieldLabel: '上传课件',
				            xtype: 'fileuploadfield',
				            emptyText: '选择您要上传的课件',
				            name: 'file_path',
				            anchor: '70%',
				            buttonCfg: {
				                text: '',
				                iconCls: 'upload-icon'
				            }
				        },{
							xtype: 'htmleditor',
							id: 'newlearnTestResEditor',
							fieldLabel: '课件描述',
							name: 'res_desc',
							height: 200,
							//禁止编辑源代码
							enableSourceEdit: false,
							anchor: '98%' 							
						}]						     
			        }]							        
			    });
			    //定义弹出窗口
				var newLearnTestRes_win = new Ext.Window({
					id: 'newLearnTestRes_win',
					title: '发布新课件',					
			        width:650,
			        height:380,
			        //设置当点击X按钮时候，是隐藏还是销毁
			        closeAction:'hide',
			        //不允许超出浏览器范围
			        constrain: true,
			        //开启蒙板效果
			        modal: true,
			        buttonAlign: 'center',
			        items: [newLearnTestResForm],
			        buttons: [{
				       	text:'保存',
				       	iconCls: 'submit_icon',
				       	//提交表单
				       	handler: function () {
				       		//如果表单验证成功，则显示保存的等待，和提交form
				       		if (newLearnTestResForm.getForm().isValid()) {				       			
				       			//判断HtmlEditor即内容的输入是否为空
								var contentValue = Ext.getCmp("newlearnTestResEditor").getValue();
								if (Ext.isEmpty(contentValue.Trim())) {
									Ext.Msg.alert("错误信息", "请输入您要发布的课件描述!");
									return;
								}
								
								//不知道为什么，加上了“fileUpload: true, ”就会有乱码，只有编码来解决的，郁闷
								Ext.getCmp('learnTestResTitle').setValue(encodeURI(Ext.getCmp('learnTestResTitle').getValue()));
      							//Ext.getCmp('upload_file').setValue(encodeURI(Ext.getCmp('upload_file').getValue()));
      							Ext.getCmp('newlearnTestResEditor').setValue(encodeURI(contentValue));
								
				       			//提交表单
				       			newLearnTestResForm.getForm().submit({	
				       				url: 'learn_res_mgr.do?cmd=add&flag=experiment',
				        			success: function (newLearnTestResForm, action) {
				        				Ext.Msg.alert("操作结果", action.result.msg);
				        				//重置newLearnTestResForm中的数据
				        				newLearnTestResForm.reset();
				        				//关闭窗口（隐藏）
				        				newLearnTestRes_win.hide();
				        				//刷新表格数据，看看修改或添加效果
				        				learnTestResGrid.getStore().reload();
				        			},
				        			failure: function (newLearnTestResForm, action) {
				        				//重置newLearnTestResForm中的数据
				        				newLearnTestResForm.reset();
				        				Ext.Msg.alert("操作结果", action.result.msg);
				        			}
				        		});
				       			//显示等待保存的提示信息
				        		Ext.MessageBox.show({
				        				title: '请等待',
	                                    msg: '正在保存，请稍等...',
	                                    progress: true,								        
								        width: 240,
								        wait:true,
								        icon: 'mb_waiting_icon',
								        animEl: 'saving',
								        waitConfig: {
								        	interval: 200,  //interval进度的频率
								        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
											fn: function(){	//时间到后执行
			                                 	Ext.MessageBox.hide();	//让进度条消失
			                                }
								        }
	                            });
				       		}	
			        	}						       	 	
			        }, {
			        	text:'重置',
			        	iconCls: 'reset_icon',
			        	handler: function () {
			        		newLearnTestResForm.getForm().reset();
			        	}	
			        }, {
			        	text:'取消',
			        	iconCls: 'revoke_icon',
			        	handler: function () {
			        		newLearnTestRes_win.hide();
			        	}	
			        }]
			    });
			    
			    //发布新课件
				var newlearnTestResButtonFn = function() {
					newLearnTestResForm.getForm().reset();
				    newLearnTestRes_win.show();	
				}
				
				/********弹出窗口编辑修改选中的课件********/
				//创建课件表单
				var editLearnTestResForm = new Ext.form.FormPanel({	
					fileUpload: true, 
			        labelAlign: 'right',			        
			        labelWidth: 80,
			        frame: true,	
			        //enctype:'multipart/form-data',
			        items: [{
			        	xtype: 'fieldset',
						title: '课件基本信息',
						autoHeight: true,
						defaultType: 'textfield',
						//统一设置宽度和验证
				        defaults: {
					        allowBlank: false,
					        msgTarget: 'side'
				        },									
						items: [{
				        	xtype: 'hidden',
				        	name: 'id'
				        },{
							id: 'editlearnTestResTitle',
				            fieldLabel: '课件标题',
				            name: 'title',
				            anchor: '70%'
				        },{
							xtype: 'htmleditor',
							id: 'editlearnTestResEditor',
							fieldLabel: '课件描述',
							name: 'res_desc',
							height: 200,
							//禁止编辑源代码
							enableSourceEdit: false,
							anchor: '98%' 							
						}]						     
			        }]							        
			    });
			    
			    //定义弹出窗口
				var editLearnTestRes_win = new Ext.Window({
					id: 'editLearnTestRes_win',
					title: '发布新课件',					
			        width:650,
			        height:348,
			        //设置当点击X按钮时候，是隐藏还是销毁
			        closeAction:'hide',
			        //不允许超出浏览器范围
			        constrain: true,
			        //开启蒙板效果
			        modal: true,
			        buttonAlign: 'center',
			        items: [editLearnTestResForm],
			        buttons: [{
				       	text:'保存',
				       	iconCls: 'submit_icon',
				       	//提交表单
				       	handler: function () {
				       		//如果表单验证成功，则显示保存的等待，和提交form
				       		if (editLearnTestResForm.getForm().isValid()) {				       			
				       			//判断HtmlEditor即内容的输入是否为空
								var contentValue = Ext.getCmp("editlearnTestResEditor").getValue();
								if (Ext.isEmpty(contentValue.Trim())) {
									Ext.Msg.alert("错误信息", "请输入您要发布的课件描述!");
									return;
								}
								
								//不知道为什么，加上了“fileUpload: true, ”就会有乱码，只有编码来解决的，郁闷
								Ext.getCmp('editlearnTestResTitle').setValue(encodeURI(Ext.getCmp('editlearnTestResTitle').getValue()));
      							//Ext.getCmp('upload_file').setValue(encodeURI(Ext.getCmp('upload_file').getValue()));
      							Ext.getCmp('editlearnTestResEditor').setValue(encodeURI(contentValue));
								
				       			//提交表单
				       			editLearnTestResForm.getForm().submit({	
				       				url: 'learn_res_mgr.do?cmd=modify',
				        			success: function (editLearnTestResForm, action) {
				        				Ext.Msg.alert("操作结果", action.result.msg);
				        				//重置editLearnTestResForm中的数据
				        				editLearnTestResForm.reset();
				        				//关闭窗口（隐藏）
				        				editLearnTestRes_win.hide();
				        				//刷新表格数据，看看修改或添加效果
				        				learnTestResGrid.getStore().reload();
				        			},
				        			failure: function (editLearnTestResForm, action) {
				        				//重置editLearnTestResForm中的数据
				        				editLearnTestResForm.reset();
				        				Ext.Msg.alert("操作结果", action.result.msg);
				        			}
				        		});
				       			//显示等待保存的提示信息
				        		Ext.MessageBox.show({
				        				title: '请等待',
	                                    msg: '正在保存，请稍等...',
	                                    progress: true,								        
								        width: 240,
								        wait:true,
								        icon: 'mb_waiting_icon',
								        animEl: 'saving',
								        waitConfig: {
								        	interval: 200,  //interval进度的频率
								        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
											fn: function(){	//时间到后执行
			                                 	Ext.MessageBox.hide();	//让进度条消失
			                                }
								        }
	                            });
				       		}	
			        	}						       	 	
			        }, {
			        	text:'重置',
			        	iconCls: 'reset_icon',
			        	handler: function () {
			        		editLearnTestResForm.getForm().reset();
			        	}	
			        }, {
			        	text:'取消',
			        	iconCls: 'revoke_icon',
			        	handler: function () {
			        		editLearnTestRes_win.hide();
			        	}	
			        }]
			    });
			    
			    //修改课件
				var editButtonFn = function() {
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = learnTestResGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择一行你要编辑的记录！");
						
					} else {	
						
						editLearnTestResForm.getForm().reset();
				    	editLearnTestRes_win.show();
				    	
						/***注意，一定要先显示窗口，以及其中的From在给Form设值，才可以****/
						
						//把表格中选中行的数据填充到表单中，并显示Window							
						editLearnTestResForm.getForm().setValues({
							id: selectedCol.get("id"),
							title: selectedCol.get("title"),
							res_desc: selectedCol.get("res_desc")
						});
					}
						
				}
				
				//删除课件
				var deleteButtonFn = function() {
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = learnTestResGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择一行你要删除的记录！");
						
					} else {
						//先提醒用户是否要删除
						Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
							//如果用户确定删除
							if (btn == 'yes') {
								//把要删除的所有选中的id
								var del_id = selectedCol.get("id");
								
								//发送到后台处理
								Ext.Ajax.request({
									url: 'learn_res_mgr.do?cmd=delete',
									success: function(response) {
										var obj = Ext.decode(response.responseText);
										if (typeof(obj) != 'undefined') {
											if (obj.result == 'success') {
												Ext.Msg.alert("操作结果", "恭喜，删除课件成功！");
												//刷新表格数据，看看删除效果
					        					learnTestResGrid.getStore().reload();
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除课件失败！请重新尝试！");
											}
										} else {
											Ext.Msg.alert("操作结果", "抱歉，删除课件失败！请重新尝试！");
										}
										
									},
									failure: function() {
										Ext.Msg.alert("操作结果", "抱歉，删除课件失败！请重新尝试！");
									},
									params: {id: del_id}										
									
								});
							}							
						});
					}
				}
				
				/******定义所有提问带ext插件RowExpander的表格*********/	
				
				//定义表格Record样式
				var learnTestResRecord = Ext.data.Record.create([
					{name: 'id', type: 'int', mapping: 'id'},
					{name: 'title', type: 'string', mapping: 'title'},
					{name: 'res_desc', type: 'string', mapping: 'res_desc'},
					{name: 'format', type: 'string', mapping: 'format'},
					{name: 'size', type: 'string', mapping: 'size'},
					{name: 'pub_user', type: 'string', mapping: 'pub_user'},
					{name: 'pub_time', type: 'date', mapping: 'pub_time', dateFormat: 'Y-m-dTH:i:s'},
					{name: 'see_count', type: 'int', mapping: 'see_count'},					
					{name: 'down_count', type: 'int', mapping: 'down_count'},
					{name: 'operate', type: 'string', mapping: 'operate'}
				]);
				
				//定义加号里面的内容显示格式
				var expander = new Ext.grid.RowExpander({
					tpl : new Ext.Template(
						'<p>&nbsp;</p>',
						'<p><b>课件描述：</b></p>',
						'<p>&nbsp;</p>',
						'<p>{res_desc}</p><br /><br />'
					)
				});
				
				//定义表格列样式
				var learnTestResColums = new Ext.grid.ColumnModel([
					//加上上面定义的expander
					expander,
				{
					id: 'id',
					header: '编号',
					dataIndex: 'id',
					type: 'int'
				},{
					id: 'title',
					header: '标题',
					dataIndex: 'title',
					type: 'string'
				},{
					id: 'format',
					header: '格式',
					dataIndex: 'format',
					type: 'string', 
					renderer: fileFormatRenderer
				},{
					id: 'size',
					header: '大小',
					dataIndex: 'size',
					type: 'string'
				},{
					id: 'pub_user',
					header: '发布人',
					dataIndex: 'pub_user',
					type: 'string'
				},{
					id: 'pub_time',
					header: '发布时间',
					dataIndex: 'pub_time',
					type: 'date',
					width: 160,
					renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒')
				},{
					id: 'see_count',
					header: '浏览次数',
					dataIndex: 'see_count',
					type: 'int'
				},{
					id: 'down_count',
					header: '下载次数',
					dataIndex: 'down_count',
					type: 'int'
				},{
					id: 'operate',
					header: '在线浏览/下载',
					dataIndex: 'operate',
					type: 'string'
				}]);
				learnTestResColums.defaultSortable = false;
				
				//定义Stroe(使用的是GroupingStore产生分组表格，按是否问题已经解决分组)
				var learnTestResStore = new Ext.data.GroupingStore({
					proxy: new Ext.data.HttpProxy({url:'learn_res_mgr.do?cmd=show&flag=experiment'}),
					reader: new Ext.data.JsonReader({
						totalProperty: 'totalProperty',
						root: 'root'
					}, learnTestResRecord),
					//分组的列
					groupField: 'format',
					//分组必须设置的，排序的列
					sortInfo: {field: 'id', direction: 'desc'}
				});
				learnTestResStore.load({params:{start: 0, limit: 10}});	
				
				//定义表格顶端工具栏	
				//显示风格选择按钮
				var styleButton = new Ext.Button({
					text: '详细模式',
					tooltip: '切换显示模式',
					iconCls:'minute_icon',
					handler: styleButtonFn
				});	
				var newlearnTestResButton = new Ext.Button({
					text: '发布',
					tooltip: '发布新课件',
					iconCls:'add_icon',
					handler: newlearnTestResButtonFn
				});
				var editButton = new Ext.Button({
					text: '编辑',
					tooltip: '编辑选中的课件',
					iconCls:'edit_icon',
					handler: editButtonFn
				});					
				var deleteButton = new Ext.Button({
					text: '删除',
					tooltip: '删除选中的课件',
					iconCls:'del_icon',
					handler: deleteButtonFn
				});
				var flashButton = new Ext.Button({
					text: '刷新',
					tooltip: '刷新本页内容',
					iconCls:'flush_icon',
					handler: function() {
				    	learnTestResGrid.getStore().reload();
				    }
				});
				var topToolbar = new Ext.Toolbar({
					items: [styleButton, '-', newlearnTestResButton, '-', editButton, '-', deleteButton, '-', flashButton]
				});
				
				//定义表格
				var learnTestResGrid = new Ext.grid.GridPanel({
					loadMask: true,
					//使得表格强制fit父容器
					viewConfig: {
						forceFit: true
					},
					store: learnTestResStore,
					cm: learnTestResColums,
					sm: new Ext.grid.RowSelectionModel(),
					//设置分组View
					view: new Ext.grid.GroupingView({
						forceFit:true,
				        //显示这个分组有多少项
				        groupTextTpl: '{text} ({[values.rs.length]} {["条记录"]})'
					}),
					//添加顶端的工具栏
					tbar: topToolbar,
					//添加底部分页条（bbar-->bottom bar）
					bbar: new Ext.PagingToolbar({
						pageSize: 10,
						store: learnTestResStore,
						displayInfo: true,
						displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
						emptyMsg: "没有记录"
					}),
					//扩展插件
					plugins: expander,
					collapsible: true,
					animCollapse: false
				});
				
				/*****定义显示课件信息的带ext插件RowExpander的表格结束*******/
				/*****************添加此表格到TabPanel*****************/
				tab = Ext.getCmp("center_part").add({
					//使用点击菜单的id，这样方便事件处理
					id: node_id,
					//标题为被点击的菜单项的text
					title: node_text,
					closable:true,
					iconCls: 'nor_icon',
					autoScroll:true,
					layout: 'fit',
					items: [learnTestResGrid]
				});		  
				/***************添加此表格到TabPanel结束***************/
				
			}
			
			//设置此新增Tab为活动的Tab
			Ext.getCmp("center_part").setActiveTab(tab);			
		}
		
	} 
};

/*********************课程资料管理版块模块结束******************/